Conventionally, there is known a controller which controls a robot so that the robot follows an external force applied to the robot, without using a force sensor (see Patent Literature 1˜Patent Literature 5). This controller detects a value of a current flowing through a motor for driving each of joint axes of the robot and a rotational speed of the motor, calculates disturbance torque exerted on the robot, and changes a position command value based on the disturbance torque.
In recent years, to increase productivity, it has been proposed that a robot and operators work cooperatively in the same work space. To secure safety, various techniques for monitoring the operation (movement) of the robot and detecting a collision with high accuracy have been developed (see Patent Literature 6 and Patent Literature 7). For example, a controller disclosed in Patent Literature 7 performs inverse dynamics calculation based on the rotational angle of a motor which is detected, and a load weight and a center-of-gravity position of a robot arm which are input, to derive a value of a motor current required to drive the motor. Then, the controller calculates a difference between the calculated value of the motor current and a current value detected from the motor, as a value of a disturbance current generated due to a collision.